package com.cxyjy.cfyuiapi.service.impl;

import com.alibaba.fastjson.JSONObject;
import com.cxyjy.cfyuiapi.service.AssignTaskService;
import com.cxyjy.common.constants.CfyuiConstants;
import com.cxyjy.common.util.JObjectUtil;
import com.cxyjy.common.util.JRequestUtil;
import com.cxyjy.common.util.JResponse;
import com.cxyjy.common.util.ResultUtil;
import org.springframework.stereotype.Service;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import static com.cxyjy.common.constants.CfyuiConstants.PROMPT_URL;

@Service("AssignTaskService")
public class AssignTaskServiceImpl implements AssignTaskService {

    /**
     * 下发文生图绘图任务，前端传用户输入的文字text，client-id自动生成
     * 其余参数全部写死在CfuiConstans类“PROMPT_DATA”常量中
     * @param text  用户输入的文字
     * @return
     * @throws IOException
     */
    @Override
    public JResponse assignTask(String text) throws IOException {
        if (text == null || text.isEmpty()) {
            return ResultUtil.error(403,"输入的文字不能为空！");
        }
        Map<String, Object> dataMap = new HashMap<>();
        Map<String, Object> promptMap = JSONObject.parseObject(CfyuiConstants.TEXT_DATA);
        dataMap.put("client-id", JObjectUtil.createId());
        dataMap.put("prompt",promptMap);
        Map<String, Map<String, Object>> sixMap = (Map) promptMap.get("6");
        sixMap.get("inputs").put("text", text);
        JSONObject dataJson = new JSONObject(dataMap);
        Object dataObj = JRequestUtil.sendPostRequest(PROMPT_URL, dataJson.toJSONString());
        return ResultUtil.success(dataObj);
    }

}
